CREATE TABLE Competencia (
       idCompetencia        char(18) NOT NULL,
       nombreCompetencia    char(18) NULL,
       descripcionCompetencia char(18) NULL
)
go


ALTER TABLE Competencia
       ADD PRIMARY KEY NONCLUSTERED (idCompetencia)
go

CREATE TABLE CompetenciaUsuario (
       idCompetencia        char(18) NOT NULL,
       login                varchar(10) NOT NULL,
       GradoMadurez         int NULL,
       Comentarios          varchar(300) NULL
)
go


ALTER TABLE CompetenciaUsuario
       ADD PRIMARY KEY NONCLUSTERED (idCompetencia, login)
go

CREATE TABLE DetalleEvaluacion (
       idEvaluacion         int IDENTITY(1,1) NOT NULL,
       idEstandar           int NOT NULL,
       calificacion         decimal(1) NULL,
       observacion          char(18) NULL,
       sugerencia           char(18) NULL
)
go


ALTER TABLE DetalleEvaluacion
       ADD PRIMARY KEY NONCLUSTERED (idEvaluacion, idEstandar)
go

CREATE TABLE DiscusionPublica (
       idPeriodo            char(3) NOT NULL,
       idEstandar           int NOT NULL,
       login                varchar(10) NULL,
       comentario           varchar(300) NULL,
       estado               int NULL
)
go


ALTER TABLE DiscusionPublica
       ADD PRIMARY KEY NONCLUSTERED (idPeriodo, idEstandar)
go

CREATE TABLE Estandar (
       idEstandar           int IDENTITY(1,1) NOT NULL,
       nombreEstandar       varchar(100) NULL,
       descripcionEstandar  varchar(300) NULL,
       peso                 int NULL,
       idPeriodo            char(3) NULL,
       estado               int NULL
)
go


ALTER TABLE Estandar
       ADD PRIMARY KEY NONCLUSTERED (idEstandar)
go

CREATE TABLE EstandarIndicador (
       idEstandar           int IDENTITY(1,1) NOT NULL,
       idIndicador          int NOT NULL,
       idPeriodo            char(3) NULL
)
go


ALTER TABLE EstandarIndicador
       ADD PRIMARY KEY NONCLUSTERED (idEstandar, idIndicador)
go


CREATE TABLE EstandarModulo (
       idEstandar           int NOT NULL,
       idModulo             int NOT NULL
)
go


ALTER TABLE EstandarModulo
       ADD PRIMARY KEY NONCLUSTERED (idEstandar, idModulo)
go

CREATE TABLE Evaluacion (
       idEvaluacion         int IDENTITY(1,1) NOT NULL,
       fechaEvaluacion      char(18) NULL,
       idPeriodo            char(3) NULL,
       tipoEvaluacion       char(18) NULL,
       idCentro             varchar(10) NULL,
       resultado            decimal(2) NULL
)
go


ALTER TABLE Evaluacion
       ADD PRIMARY KEY NONCLUSTERED (idEvaluacion)
go


CREATE TABLE EvaluacionUsuarios (
       idEvaluacion         int NOT NULL,
       login                varchar(10) NOT NULL,
       idRol                int NOT NULL,
       idPeriodo            char(3) NOT NULL
)
go


ALTER TABLE EvaluacionUsuarios
       ADD PRIMARY KEY NONCLUSTERED (idEvaluacion, login, idRol, 
              idPeriodo)
go

CREATE TABLE Modulo (
       idModulo             int IDENTITY(1,1) NOT NULL,
       nombreModulo         char(18) NULL,
       objetivoModulo       char(18) NULL
)
go


ALTER TABLE Modulo
       ADD PRIMARY KEY NONCLUSTERED (idModulo)
go

CREATE TABLE Periodo (
       idPeriodo            char(3) NOT NULL,
       nombrePeriodo        char(18) NULL,
       descripcionPeriodo   varchar(100) NULL
)
go


ALTER TABLE Periodo
       ADD PRIMARY KEY NONCLUSTERED (idPeriodo)
go

CREATE TABLE PlanificacionEvaluacion (
       login                varchar(10) NOT NULL,
       idRol                int NOT NULL,
       idPeriodo            char(3) NOT NULL,
       idCentro             varchar(10) NULL,
       fechaPlaneada        datetime NULL
)
go


ALTER TABLE PlanificacionEvaluacion
       ADD PRIMARY KEY NONCLUSTERED (login, idRol, idPeriodo)
go


CREATE TABLE Preferencias (
       login                varchar(10) NOT NULL,
       idSubProceso         int NOT NULL
)
go


ALTER TABLE Preferencias
       ADD PRIMARY KEY NONCLUSTERED (login, idSubProceso)
go

CREATE TABLE Replicacion (
       idInnovacion         int NOT NULL,
       idCentro             varchar(10) NOT NULL,
       fechaReplicacion     datetime NULL,
       comentarios          char(18) NULL
)
go


ALTER TABLE Replicacion
       ADD PRIMARY KEY NONCLUSTERED (idInnovacion, idCentro)
go

CREATE TABLE Rol (
       idRol                int IDENTITY(1,1) NOT NULL,
       nombreRol            varchar(60) NULL,
       descripcionRol       varchar(200) NULL
)
go


ALTER TABLE Rol
       ADD PRIMARY KEY NONCLUSTERED (idRol)
go

CREATE TABLE UsuarioRol (
       login                varchar(10) NOT NULL,
       idRol                int NOT NULL,
       idPeriodo            char(3) NOT NULL
)
go


ALTER TABLE UsuarioRol
       ADD PRIMARY KEY NONCLUSTERED (login, idRol, idPeriodo)
go

ALTER TABLE CompetenciaUsuario
       ADD FOREIGN KEY (login)
                             REFERENCES Usuario
go


ALTER TABLE CompetenciaUsuario
       ADD FOREIGN KEY (idCompetencia)
                             REFERENCES Competencia
go


ALTER TABLE DetalleEvaluacion
       ADD FOREIGN KEY (idEstandar)
                             REFERENCES Estandar
go


ALTER TABLE DetalleEvaluacion
       ADD FOREIGN KEY (idEvaluacion)
                             REFERENCES Evaluacion
go

ALTER TABLE DiscusionPublica
       ADD FOREIGN KEY (login)
                             REFERENCES Usuario
go


ALTER TABLE DiscusionPublica
       ADD FOREIGN KEY (idEstandar)
                             REFERENCES Estandar
go


ALTER TABLE DiscusionPublica
       ADD FOREIGN KEY (idPeriodo)
                             REFERENCES Periodo
go

ALTER TABLE Estandar
       ADD FOREIGN KEY (idPeriodo)
                             REFERENCES Periodo
go

ALTER TABLE EstandarIndicador
       ADD FOREIGN KEY (idPeriodo)
                             REFERENCES Periodo
go


ALTER TABLE EstandarIndicador
       ADD FOREIGN KEY (idIndicador)
                             REFERENCES Indicador
go


ALTER TABLE EstandarIndicador
       ADD FOREIGN KEY (idEstandar)
                             REFERENCES Estandar
go


ALTER TABLE EstandarModulo
       ADD FOREIGN KEY (idModulo)
                             REFERENCES Modulo
go


ALTER TABLE EstandarModulo
       ADD FOREIGN KEY (idEstandar)
                             REFERENCES Estandar
go


ALTER TABLE Evaluacion
       ADD FOREIGN KEY (idCentro)
                             REFERENCES Centro
go


ALTER TABLE Evaluacion
       ADD FOREIGN KEY (idPeriodo)
                             REFERENCES Periodo
go


ALTER TABLE EvaluacionUsuarios
       ADD FOREIGN KEY (login, idRol, idPeriodo)
                             REFERENCES UsuarioRol
go


ALTER TABLE EvaluacionUsuarios
       ADD FOREIGN KEY (idEvaluacion)
                             REFERENCES Evaluacion
go

ALTER TABLE PlanificacionEvaluacion
       ADD FOREIGN KEY (idCentro)
                             REFERENCES Centro
go


ALTER TABLE PlanificacionEvaluacion
       ADD FOREIGN KEY (login, idRol, idPeriodo)
                             REFERENCES UsuarioRol
go


ALTER TABLE Preferencias
       ADD FOREIGN KEY (idSubProceso)
                             REFERENCES SubProceso
go


ALTER TABLE Preferencias
       ADD FOREIGN KEY (login)
                             REFERENCES Usuario
go


ALTER TABLE Replicacion
       ADD FOREIGN KEY (idCentro)
                             REFERENCES Centro
go


ALTER TABLE Replicacion
       ADD FOREIGN KEY (idInnovacion)
                             REFERENCES Innovacion
go

ALTER TABLE UsuarioRol
       ADD FOREIGN KEY (idPeriodo)
                             REFERENCES Periodo
go


ALTER TABLE UsuarioRol
       ADD FOREIGN KEY (idRol)
                             REFERENCES Rol
go


ALTER TABLE UsuarioRol
       ADD FOREIGN KEY (login)
                             REFERENCES Usuario
go





--drop table Competencia
--drop table CompetenciaUsuario
--drop table DetalleEvaluacion
--drop table DiscusionPublica
--drop table Estandar
--drop table EstandarIndicador
--drop table EstandarModulo
--drop table Evaluacion
--drop table EvaluacionUsuarios
--drop table Modulo
--drop table Periodo
--drop table PlanificacionEvaluacion
--drop table Preferencias
--drop table Replicacion
--drop table Rol
--drop table UsuarioRol